package cn.ibobo.lease.common.base;

import java.io.Serializable;
import java.util.List;

/**
 * Description: 通用数据映射接口类 <br />
 * ClassName: BaseMapper <br />
 * @author bushy
 * @version 1.0 2017年10月11日下午1:39:50
 */
public interface BaseMapper<T, PK extends Serializable> {

	/**
	 * 新增一条记录
	 * @author bushy
	 * @createDate 2017年10月11日下午1:42:03
	 * @param entity
	 * @return
	 */
	Integer add(T entity);
	
	/**
	 * 修改一条记录
	 * @author bushy
	 * @createDate 2017年10月11日下午1:42:58
	 * @param entity
	 * @return
	 */
	Integer edit(T entity);
	
	/**
	 * 查询所有记录列表
	 * @author bushy
	 * @createDate 2017年10月11日下午1:43:51
	 * @return
	 */
	List<T> list();
	
	/**
	 * 根据条件查询列表
	 * @author bushy
	 * @createDate 2017年10月11日下午1:48:17
	 * @param entity
	 * @return
	 */
	List<T> listByCondition(T entity);
	
	/**
	 * 查询记录列表，带分页
	 * @author bushy
	 * @createDate 2017年10月11日下午1:49:12
	 * @return
	 */
	List<T> list4Page(T entity);	

	/**
	 * 根据Id查询一条记录
	 * @author bushy
	 * @createDate 2017年10月11日下午1:45:30
	 * @param id
	 * @return
	 */
	T queryOneByPk(PK id);
	
	/**
	 * 删除一条记录
	 * @author bushy
	 * @createDate 2017年10月11日下午1:46:31
	 * @param id
	 * @return
	 */
	Integer delete(PK id);
	
}
